Background & Overview

As I greatly enjoyed robot summer, I wanted to do another similar project with a bit more autonomy. This project started with a group of friends all wanting to do some extracurricular projects involving mechanical and circuit design, plus a hefty amount of computer vision and machine learning. The goal of this project is to make an autonomous robot that takes processed camera data on a pool table with pool balls on it, and automatically plays pool.

Chassis Cad

Design(updated as project goes)

  • The drive base uses 3 omni-wheels at 60 degree angles to achieve both rotational and translational freedom
  • Later prototype uses stepper motors instead of dc motors for positional accuracy as speed is not a concern
  • The robot uses a high voltage solenoid to hit the balls
  • A camera is setup on top of the pool table to gather real time data of the colors and positions of the balls and the robot
  • The camera data is transmitted to a laptop which uses YOLOv8(computer vision model) to both analyze the data and calculate the path for the robot
  • The instructions is sent from the laptop to the esp32 microcontroller on the robot via Wifi
Robot electronics

Results(updated as project goes)

  • Able to precisely travel to any position and any rotation with either manual GUI commands or autonomous computer vision feedback
  • Able to calculate trajectory of the ball strike and the force of the strike
  • Accurately scores with complex ball movement(bouncing off edges)!

Images & Videos

Robot from the back
Pool table testing with computer vision
Pool table testing
Backview of robot running
Solenoid testing
Algorithm test on pool table without solenoid